package m1;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;


/**
 * 简单模式:一个生产者,一个消费者
 */
public class Producer {
    public static void main(String[] args) throws Exception {
        //1.建立连接 140 5672 admin admin
        ConnectionFactory f = new ConnectionFactory();
        f.setHost("192.168.64.140");
        f.setPort(5672);
        f.setUsername("admin");
        f.setPassword("admin");
        Connection con = f.newConnection();
        Channel c = con.createChannel();//通信通道

        //2.在mq服务器上创建一个队列
        //告诉服务器,需要一个"helloworld"队列,如果不存在,服务器会把这个队列创建出来
        c.queueDeclare(
                "helloworld",//队列名
                false,//是否是持久队列,true表示rabbitMQ重启后队列仍然存在
                false,//是否是排他队列,独占队列->可以多个消费者都从这个队列获取
                false,//是否自动删除->没有消费者使用的时候自动删除,没有消费者接收消息时自动删除队列
                null);//其他属性配置
        //3.向指定的队列发消息
        //发送的消息必须是byte[],不管是什么类型的数据,都要转成byte[]
        c.basicPublish(
                "", //默认的交换机
                "helloworld", //队列
                null,//其他消息属性
                "hello World!".getBytes());//发送的消息数据,,,,,,,

        //关闭通道, 断开连接->非必需的
        c.close();
        con.close();
    }
}
